home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d10 / pitstop.arc / ROUTING.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1991-06-01  |  2.9 KB  |  115 lines

  1. 1  'Multiple route subroutine for PitStop America
  2. 2  'Version 1.1 developed by FutureWave Shareware
  3. 3  'Programmed by M. Broughton Boone
  4. 4  ' A Shareware Program
  5. 10  DIM C$(100): DIM S$(100): DIM MA(100): DIM M(100): DIM MN(100): DIM RC$(100): DIM RS$(100): DIM RHI(100): DIM RMA(100)
  6. 100  'Multiroute Program
  7. 110  OPEN "I",#1,"carry.dat"
  8. 120  INPUT #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
  9. 130  CLOSE #1
  10. 140  IH = HT
  11. 150  CS$ = CD$: SS$ = SD$
  12. 160  'Read in highway info
  13. 170  OPEN "I",#1,"Interste.dat"
  14. 180  WHILE NOT EOF(1)
  15. 190   INPUT #1,H,C$,S$,MA,M,MN
  16. 200   IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
  17. 210  WEND
  18. 220  CLOSE #1
  19. 230  FOR X = 1 TO I
  20. 240  IF C$(X)=CS$ AND S$(X) = SS$ THEN GOSUB 1050
  21. 250  IF C$(X)=DC$ AND S$(X) = DS$ THEN GOSUB 1060
  22. 260  NEXT X
  23. 270  J = 1
  24. 280  OPEN "I",#1,"Intrstrc.dat"
  25. 290  WHILE NOT EOF(1)
  26. 300   INPUT #1,H,RC$,RS$,RHI,RMA
  27. 310   IF H = IH THEN RC$(J) = RC$: RS$(J) = RS$: RHI(J) = RHI: RMA(J) = RMA: J = J+1
  28. 320  WEND
  29. 330  CLOSE #1
  30. 340  IF K = 1 AND L = 1 THEN GOTO 1070 'load oneroute
  31. 350  IF K = 1 AND L <> 1 THEN GOTO 370
  32. 360  IF K <> 1 THEN GOTO 230
  33. 370  'Route Change Data Input
  34. 380  LOCATE 23,10: PRINT "Your destination is not on I-";IH;". Please wait..."
  35. 390  'Display Route Change Info Subroutine
  36. 400  CLS
  37. 410  PRINT TAB(30);"Routes Connecting to I-";IH
  38. 420  HF  = IH
  39. 430  X = 3: Y = 1
  40. 440  FOR P = 1 TO J-1
  41. 450  IF X = 22 THEN Y = Y+40: X = 3
  42. 460  LOCATE X,Y: PRINT P;:LOCATE X,Y+4: PRINT"I-";:LOCATE X,Y+6: PRINT RHI(P);:LOCATE X,Y+11: PRINT RC$(P);",";RS$(P)
  43. 470  X = X+1
  44. 480  NEXT P
  45. 490  LOCATE 23,10: PRINT "Number (1-";P-1;") of new route";: INPUT A
  46. 500  IF A > P THEN 490: HT = RHI(A)
  47. 510   HT = RHI(A): CD$ = RC$(A) : CS$ = RS$(A)
  48. 520  GOSUB 1080
  49. 540  'Determine inital segment data
  50. 550  OPEN "I",#1,"Driving.dat"
  51. 560  INPUT #1,AS,HD,AT$,MD,AT
  52. 570  CLOSE #1
  53. 580  OPEN "I",#1,"Refuel.dat"
  54. 590  INPUT #1,TC,MPG,B$,MT
  55. 600  CLOSE #1
  56. 610  'Mileage info
  57. 620  'Var
  58. 630  'var
  59. 640  SM = D-S: IF SM < 0 THEN F=-1 ELSE F = 1
  60. 650  SM = ABS(SM): TM = TM+SM
  61. 660  'Refuel?
  62. 670  J = SI
  63. 680  J = SI+F
  64. 690  CM = CM + M(J): ML = ML - M(J)
  65. 700  IF ML < MN(J) THEN GOSUB 740
  66. 710  IF J = DI THEN 800
  67. 720  J = J+F
  68. 730  GOTO 690
  69. 740  'Refuel
  70. 750  OPEN "A",#1,"Fuel.dat"
  71. 760  WRITE #1,C$(J),S$(J),CM
  72. 770  CLOSE #1
  73. 780  T = T+1: CM = 0: ML = MT
  74. 790  RETURN
  75. 800  'Sleep Subroutine
  76. 810  J = SI + F
  77. 820  DM = DM - M(J): ED = ED + M(J)
  78. 830  IF MN(J) > DM THEN GOSUB 860
  79. 840  J = J+F: IF J = DI THEN 940
  80. 850  GOTO 820
  81. 860  'Sleep
  82. 870  TR = ED/AS: 'todays hours (TR)
  83. 880  TR$ = STR$(TR): TR$ = LEFT$(TR$,4): TR = VAL(TR$)
  84. 890  OPEN "A",#1,"Sleep.dat"
  85. 900  WRITE #1,DAY,TR,C$(J),S$(J),ED
  86. 910  CLOSE #1
  87. 920  DM = MD: ED = 0: DAY = DAY+1
  88. 930  RETURN
  89. 940  'Route information
  90. 950  OPEN "A",#1,"Route.dat"
  91. 960  WRITE #1,CS$,SS$,CD$,SD$,HF,HT,SM
  92. 970  CLOSE #1
  93. 980  'Carryover Information
  94. 990  OPEN "Carry.dat" FOR OUTPUT AS #1
  95. 1000  WRITE #1,CD$,SD$,DC$,DS$,DAY,SM,ED,ML,T,HT,TM,DM,CM
  96. 1010  CLOSE #1
  97. 1020  'Go back to beginning
  98. 1030  GOTO 100
  99. 1040  'Housekeeping
  100. 1050  SI = X: S = MA(X): K = 1: RETURN
  101. 1060  DI = X: D = MA(X): L = 1: RETURN
  102. 1070  CHAIN "oneroute
  103. 1080  OPEN "I",#1,"interste.dat"
  104. 1090  I = 1
  105. 1100  WHILE NOT EOF(1)
  106. 1110   INPUT #1,H,C$,S$,MA,M,MN
  107. 1120   IF H = IH THEN C$(I) = C$: S$(I) = S$: MA(I) = MA: M(I) = M: MN(I) = MN: I = I+1
  108. 1130  WEND
  109. 1140  CLOSE #1
  110. 1150  FOR X = 1 TO I
  111. 1160  IF CD$ = C$(X) AND SD$ = S$(X) THEN DI = X: D = MA(X)
  112. 1170  IF CD$ = C$(X) AND SD$ = S$(X) THEN D = MA(X)
  113. 1180  NEXT X
  114. 1190  RETURN
  115.